AWS Cloud Practitioner Certification: Compute Modules
Client-Server Model
Deployment Models
You can think as deployment models as:
- How can you integrate the cloud resources with the infrastructure of the client.
- Cloud-based
- Run all parts of the app in the cloud.
- Migrate existing app entire to the cloud.
- Design and build new apps in the cloud.
- Use Cases:
- The clients don’t need full control over the infrastructure and data.
- The workloads can run entirely in the cloud.
- On-premises (Private cloud)
- The first approach is the clients provide the infrastructure and AWS provide the software layer. Case the clients want to run optimized apps and services instead of create legacy app.
- The second approach is AWS literally provide real infrastructure to your site, but AWS still manages and updates it.
- See AWS Outposts Family.
- Think as the clients have their own running infrastructure and they want to increase their resources and software services, but they want to keep the physical servers in site.
- The client BUY and MANAGE hardware. Handle power, cooling, networking, backups, and disaster recovery.
- Use Cases:
- Highly sensitive systems (e.g., certain government, finance, healthcare environments)
- Legacy app tightly coupled to specific hardware.
- Hybrid (AWS + On-Premise)
- Think as the clients want to run some workloads in their own infrastructure and others in AWS cloud servers., and often connect them so they work together.
- Use Cases:
- Keep sensitive systems on-premise, and non-sensitive in the AWS servers.
- Gradual cloud migration strategies.
- Improved disaster recovery and backup options.
- Seasonal workloads needing burst capacity.
- Keeping regulated data on-prem while running analytics in AWS.
Benefits of using compute in the cloud
- Buy, keep, and maintain physical servers can be expense. Using cloud computing resources you pay what you consume.
- Flexibility:
- You don’t care about keep the infrastructure updated.
- You don’t need to add manually more resources if the apps need more.
- Deploy apps to the customers quickly in any place with low latency.
- The points before lead to scale your business.
AWS services to provide cloud computing
Amazon Elastic Compute Cloud (Amazon EC2)
- It’s a virtual server with computing resources associated to it.
Types of Amazon EC2 instances
- General purpose instances
- Good balance between compute, memory, storage, and network resources.
- Use cases:
- App servers
- Gaming servers
- Backend servers for enterprise apps
- Small and medium databases.
- Compute optimized instances
- Idead for high demanding CPUs apps.
- Use cases:
- High-performance web servers.
- Compute intensive app servers.
- Dedicated gaming servers.
- Batch processing workloads.
- Memory optimized instances
- High RAM capacity instances.
- Use cases:
- Process large datasets.
- Real time processing of a large amount of unstructured data.
- Storage optimized instances
- Designed for workloads that demands high, sequential read and write access to large datasets on local storage.
- Use cases:
- Data warehousing apps.
- High frequency online transaction processing (OLTP) systems.
- Accelerated computing instances
- Use hardware accelerators, coprocessors, or GPUs to perform some functions more efficiently than is possible in software running on CPUs.
- Use cases:
- Graphic processing.
- Floating-point calculations.
- Data pattern matching.
Pricing
Main principle → PAY-AS-YOU-GO
- On-demand:
- The instance don’t stop until you stop it.
- Pay only the compute time you use.
- Ideal for short terms.
- Reserved Instances:
- You purchase a/a group of instances for 1-year or 3-year term.
- There are 2 types:
- Standard Reserved Instances: Good choice if you know:
- Instance type.
- Instance size.
- The region to deploy the app.
- Convertible Reserved Instances:
- Good fit if you need to run the app in different Availability Zones or different instances types.
- Standard Reserved Instances: Good choice if you know:
- Spot Instances:
- Ideal for workloads with flexible start and end times.
- Used typically for background process without affecting the overall operations of your business.
- Offer 90% discount of On-demand price.
- Dedicated Hosts:
- Most expensive option.
- Physical servers with Amazon EC2 instances that are fully dedicated to your use.
- EC2 Instance Saving Plan:
- Provide a discount when you commit to make a hourly spend to an instance family and Region for a 1-year or 3-year term.
Scalability (Amazon EC2 Auto Scaling)
- Amazon EC2 Auto Scaling provide scalability for Amazon EC2 instances. Think as increase the number of instances while you app need it.
- You can use 2 approaches:
- Dynamic scaling: Responds to changing demand.
- Predictive scaling: Automatically schedules the right number of Amazon EC2 instances based on predicted demand.
- You have to set the Auto Scaling Group. You set the following set up:
- Minimum: Number of instances that need your app to run.
- Desired: Number of instances that you want to use in your app.
- Maximum: Number of instances that you reserve in case the app need more resources.
Elastic Load Balancing
- Service that automatically distribute the incoming traffic across multiple resources such as Amazon EC2.
- Amazon EC2 assigns instances - Elastic Load Balancing distributes to the assigned instances.
Messaging and Queuing
The apps can have two main architecture design:
- Tightly coupled architecture.
- When component A fail, component B also fail.
- Think as all the app in a single project.
- You don’t need to send messages to the app components through the infrastructure.
- Loosely coupled architecture.
- Think as microservices where each microservice has its own function.
- So, if component A fail, component B don’t fail.
- You need a message service to communicate the components.
There are 2 AWS services to send messages and handling queues.
- Amazon SNS (Simple Queue Service)
- It’s a publisher/subscriber service. More native way of send messages one side publish a message and the other side listen the message.
- You can loss messages, because there isn’t a buffer between.
- Use cases:
- Web servers
- AWS Lambda functions.
- Amazon SQS (Simple Notification Service)
- It’s a message queuing service.
- You don’t loss messages because they wait in a buffer or queue.
Serverless and Containers Solutions
Serverless → Don’t care about managing the server
- With Amazon EC2 you need:
- Virtual server + Code + Manage the instance.
- No native serverless approach.
- With serverless approach you need only the Code part or only need to focus on the product not the infrastructure.
AWS Lambda
- It’s a service that lets you run code without worrying about managing the infrastructure. (serverless approach)
- How AWS Lambda work:
Containers
- Amazon Elastic Container Service (Amazon ECS)
- Management system that allow build, run and scale containerized apps on AWS.
- Amazon Elastic Kubernetes Service (Amazon EKS)
- Management system to orchestrate containers on AWS.
- AWS Fargate
- It’s a serverless compute engine for containers on Amazon ECS or Amazon EKS to run containerized apps without worrying about the server management or instance allocation.
Summary
- Your business can choose from 3 deployment models options. In any case, you will end up using AWS services.
- Depends of you business needs or the architecture of your apps you can use the CORE and add some necessary services.
- If your business needs or app scale maybe you need to add more services.
- If your business doesn’t need to worry about managing infrastructure, you can opt for a serverless approach.










